build(release): 支持依赖与安全提交触发补丁发布#319
Conversation
- 更新 semantic-release 规则,将 deps 与 security 提交映射为 patch 发布 - 补充 AGENTS 与贡献文档中的提交类型语义 - 记录 SEMREL-RP-005 验证结果与分支恢复入口
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📜 Recent review details⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
🧰 Additional context used📓 Path-based instructions (4)ai-plan/public/**📄 CodeRabbit inference engine (AGENTS.md)
Files:
ai-plan/**📄 CodeRabbit inference engine (AGENTS.md)
Files:
ai-plan/public/**/traces/**📄 CodeRabbit inference engine (AGENTS.md)
Files:
ai-plan/public/**/todos/**📄 CodeRabbit inference engine (AGENTS.md)
Files:
🧠 Learnings (1)📓 Common learnings🪛 LanguageToolai-plan/public/semantic-release-versioning/traces/semantic-release-versioning-trace.md[grammar] ~11-~11: Ensure spelling is correct (QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1) ai-plan/public/semantic-release-versioning/todos/semantic-release-versioning-tracking.md[grammar] ~29-~29: Ensure spelling is correct (QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1) [grammar] ~47-~47: Ensure spelling is correct (QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1) 🔇 Additional comments (5)
📝 WalkthroughWalkthrough本PR更新语义发布配置,将 commit 类型 Changes语义发布规则与文档同步
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 60 minutes.Comment |
|
| Filename | Overview |
|---|---|
| .releaserc.json | Adds deps and security to both commit-analyzer releaseRules (patch) and release-notes-generator presetConfig.types (hidden: false); resolves prior P1 drift between version triggering and changelog rendering. |
| AGENTS.md | Documents deps and security commit-type semantics and their patch-release mapping, keeping agent guidance in sync with .releaserc.json. |
| docs/zh-CN/contributing.md | Adds deps and security entries to the public commit-type table; no issues found. |
| ai-plan/public/README.md | Adds build/semantic-release-rules branch mapping to internal AI-plan index; documentation only. |
| ai-plan/public/semantic-release-versioning/todos/semantic-release-versioning-tracking.md | Updates tracking doc with SEMREL-RP-005/006 recovery points and validation results; internal planning artifact. |
| ai-plan/public/semantic-release-versioning/traces/semantic-release-versioning-trace.md | Appends 2026-05-03 and 2026-05-04 trace entries documenting the patch-type extension and release-notes fix; internal audit trail. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Commit pushed] --> B{commit-analyzer\nreleaseRules}
B -->|feat| C[minor release]
B -->|fix / perf / refactor\ndeps / security| D[patch release]
B -->|docs / test / chore\nbuild / ci / style| E[no release]
B -->|BREAKING CHANGE / !| F[major release]
D --> G[release-notes-generator\npresetConfig.types]
C --> G
F --> G
G -->|feat → Features\nfix → Bug Fixes\nperf → Performance\nrefactor → Refactoring\ndeps → Dependency Updates\nsecurity → Security Fixes\nrevert → Reverts| H[GitHub Release notes rendered]
Reviews (2): Last reviewed commit: "build(release): 修复发布说明类型映射" | Re-trigger Greptile
Summary
Test ResultsDetails
Insights
build-and-test: Run #1048
🎉 All tests passed!Slowest Tests
🎉 No failed tests in this run. | 🍂 No flaky tests in this run. Github Test Reporter by CTRF 💚 |
✅MegaLinter analysis: Success
See detailed reports in MegaLinter artifacts
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.releaserc.json (1)
36-43: ⚡ Quick win
deps/security触发 patch 发布但不会出现在 semantic-release 生成的 notes 中
commit-analyzer新增的两条规则可以正确触发 patch 版本计算,但release-notes-generator(Lines 77–88)使用conventionalcommitspreset 且未配置presetConfig.types或writerOpts.types。Individual properties ofparserOptsandwriterOptswill override ones loaded with an explicitly set preset or config,且对于conventionalcommits这类需要配置对象的 preset,presetConfig选项必须被设置。因此
deps和security提交会触发版本升级,但不会出现在 semantic-release 的 workflow summary 输出里,CI 日志中无法看到版本升级的原因——尤其对security类型而言可读性较差。如需在 workflow summary 中也显示这两个类型,可在
release-notes-generator中补充presetConfig:✨ 建议补充 presetConfig.types 配置
[ "@semantic-release/release-notes-generator", { "preset": "conventionalcommits", + "presetConfig": { + "types": [ + { "type": "feat", "section": "Features", "hidden": false }, + { "type": "fix", "section": "Bug Fixes", "hidden": false }, + { "type": "perf", "section": "Performance", "hidden": false }, + { "type": "refactor", "section": "Refactoring", "hidden": true }, + { "type": "deps", "section": "Dependency Updates", "hidden": false }, + { "type": "security", "section": "Security Fixes", "hidden": false }, + { "type": "revert", "section": "Reverts", "hidden": false } + ] + }, "parserOpts": {🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.releaserc.json around lines 36 - 43, The release notes generator currently uses the "conventionalcommits" preset but lacks a presetConfig, so commit types "deps" and "security" (added in commit-analyzer) trigger version bumps but do not appear in generated notes; update the release-notes-generator configuration to include a presetConfig that defines types for "deps" and "security" (e.g., add entries for the "deps" and "security" types in presetConfig.types) so they are rendered in the semantic-release notes; ensure you modify the release-notes-generator options in .releaserc.json (alongside parserOpts/writerOpts if present) to include the new presetConfig.types mapping.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.releaserc.json:
- Around line 36-43: The release notes generator currently uses the
"conventionalcommits" preset but lacks a presetConfig, so commit types "deps"
and "security" (added in commit-analyzer) trigger version bumps but do not
appear in generated notes; update the release-notes-generator configuration to
include a presetConfig that defines types for "deps" and "security" (e.g., add
entries for the "deps" and "security" types in presetConfig.types) so they are
rendered in the semantic-release notes; ensure you modify the
release-notes-generator options in .releaserc.json (alongside
parserOpts/writerOpts if present) to include the new presetConfig.types mapping.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 3eccc787-06e4-4442-a45e-7538a3a4cda4
📒 Files selected for processing (6)
.releaserc.jsonAGENTS.mdai-plan/public/README.mdai-plan/public/semantic-release-versioning/todos/semantic-release-versioning-tracking.mdai-plan/public/semantic-release-versioning/traces/semantic-release-versioning-trace.mddocs/zh-CN/contributing.md
📜 Review details
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Analyze (C#)
- GitHub Check: Build and Test
- GitHub Check: Code Quality & Security
🧰 Additional context used
📓 Path-based instructions (6)
docs/**/*.md
📄 CodeRabbit inference engine (CLAUDE.md)
Documentation should be organized with Chinese content in docs/zh-CN/ and structured to include getting started, module-specific capabilities (Core, Game, Godot, ECS), source generator usage, tutorials, best practices, and troubleshooting
The main documentation site lives under docs/, with Chinese content under docs/zh-CN/; keep code samples, package names, and command examples aligned with the current repository state
For integration-oriented features, documentation MUST cover: project directory layout and file conventions, required project or package wiring, minimal working usage example, and migration or compatibility notes when behavior changes
Do not rely on 'the code is self-explanatory' for framework features that consumers need to adopt; write the adoption path down so future users do not need to rediscover it from source
When examples are rewritten, preserve only the parts that remain true; delete or replace speculative examples instead of lightly editing them into another inaccurate form
Files:
docs/zh-CN/contributing.md
{README.md,docs/**/*.md}
📄 CodeRabbit inference engine (AGENTS.md)
Update the relevant README.md or docs/ page when behavior, setup steps, architecture guidance, or user-facing examples change
Public documentation under README.md and docs/** MUST stay reader-facing; do not publish governance-only content such as inventory tables, coverage baselines, review queues, batch metrics, recovery points, or trace summaries
Public documentation MUST use semantic section titles and link labels; do not surface raw filenames or paths as reader-facing navigation text when a meaningful destination label is available
Public documentation MUST avoid rhetorical, self-referential, or AI-sounding headings and prompts; prefer neutral labels for documentation sections
Public documentation MUST present limitations, suitability, and migration boundaries as adoption guidance for readers; do not publish internal-governance or product-roadmap wording
Prefer documenting behavior and design intent, not only API surface in public documentation
When a public page references XML docs or API coverage, convert that evidence into reader-facing guidance: explain which types, namespaces, or entry points readers should inspect and why
If an existing documentation page no longer reflects the current implementation, fixing the code without fixing the documentation is considered incomplete work
Files:
docs/zh-CN/contributing.md
docs/zh-CN/**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
When a feature is added, removed, renamed, or substantially refactored, contributors MUST update or create the corresponding user-facing integration documentation in docs/zh-CN/ in the same change
Files:
docs/zh-CN/contributing.md
docs/**
📄 CodeRabbit inference engine (AGENTS.md)
If a docs category appears in VitePress navigation or sidebar, it MUST have a real landing page or be removed from navigation in the same change
Files:
docs/zh-CN/contributing.md
ai-plan/public/README.md
📄 CodeRabbit inference engine (AGENTS.md)
ai-plan/public/README.md MUST list only active topics; do not add ai-plan/public/archive/** content to the default boot index
When a worktree-to-topic mapping changes, or when a topic becomes active/inactive, contributors MUST update ai-plan/public/README.md in the same change
When a topic is fully complete, move the entire topic directory under ai-plan/public/archive// and remove it from ai-plan/public/README.md in the same change
Files:
ai-plan/public/README.md
ai-plan/public/*/todos/**
📄 CodeRabbit inference engine (AGENTS.md)
When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under ai-plan/public//todos/ in the same change
Files:
ai-plan/public/semantic-release-versioning/todos/semantic-release-versioning-tracking.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Read @.ai/environment/tools.ai.yaml before choosing runtimes or CLI tools; prefer project-relevant tools listed there instead of assuming every installed system tool is fair game
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: When working in WSL against this repository's Windows-backed worktree, prefer Linux git with explicit --git-dir and --work-tree bindings over git.exe to avoid path translation mistakes
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Every completed task MUST pass at least one build validation before it is considered done
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: When the goal is to inspect or reduce warnings printed during project build, establish the warning baseline from a non-incremental repository-root build by running dotnet clean and then dotnet build
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Commit messages MUST use Conventional Commits format: <type>(<scope>): <summary>, with commit summary in simplified Chinese
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Commit body MUST use unordered list items, each starting with a verb such as 新增、修复、优化、更新、补充、重构
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Use commit type feat only for user-facing or consumer-facing capability additions; use fix for behavior corrections, perf for performance improvements, refactor for non-feature code restructuring, and deps/security/docs/test/chore/build/ci/style for their literal categories
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Use BREAKING CHANGE in commit footer or ! after type/scope header when the change should raise the major version segment
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Keep technical terms in English when they are established project terms, such as API、Model、System, in commit messages and documentation
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Prefer invoking $gframework-boot when the user uses short startup prompts such as boot、continue、next step
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Use subagents only when the task is complex, the context is likely to grow too large, or the work can be split into independent parallel subtasks
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Every non-trivial feature, bug fix, or behavior change MUST include tests or an explicit justification for why a test is not practical
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Public API changes must be covered by unit or integration tests
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: When a public API defines multiple contract branches, tests MUST cover the meaningful variants, including null, empty, default, and filtered inputs when those branches change behavior
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Regression fixes should include a test that fails before the fix and passes after it
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Every user-facing package or module directory that contains a *.csproj intended for direct consumption MUST have a sibling README.md
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Adding a new top-level module directory without a README.md is considered incomplete work
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Contributors MUST keep committed ai-plan/public/** content safe to publish in Git history
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Never write secrets, tokens, credentials, private keys, machine usernames, home-directory paths, hostnames, IP addresses, proprietary URLs, or other sensitive environment details into any ai-plan/** file
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Never record absolute file-system paths in ai-plan/**; use repository-relative paths, branch names, PR numbers, or stable document identifiers instead
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Use ai-plan/public/** only for durable, handoff-safe task state; put temporary notes, local experiments, or worktree-specific scratch recovery data under ai-plan/private/
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Active tracking and trace files are recovery entrypoints, not append-only changelogs; they MUST stay concise enough for boot to locate the current recovery point quickly
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Completing code changes without updating the active tracking document is considered incomplete work
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under ai-plan/public/<topic>/todos/ before making substantive code changes
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Recovery documents MUST record the current phase, the active recovery point identifier, known risks, and the next recommended resume step so another contributor or subagent can continue the work safely
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: Contributors MUST maintain a matching execution trace under ai-plan/public/<topic>/traces/ for complex work, recording the current date, key decisions, validation milestones, and the immediate next step
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: When a stage inside an active topic is fully complete, move the finished artifacts into that topic's archive/ directory instead of leaving every completed step in the default boot path
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: When completed and validated stages begin to accumulate, contributors MUST archive their detailed history out of the active todos/ and traces/ entry files, keeping only current recovery point, active facts, active risks, immediate next step, and pointers to archive files
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: When a task spans multiple commits or is likely to exceed a single agent context window, update both the recovery document and the trace at each meaningful milestone before pausing or handing work off
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-05-03T15:03:29.800Z
Learning: If subagents are used on a complex task, the main agent MUST capture the delegated scope and any accepted findings in the active recovery document or trace before continuing implementation
🪛 LanguageTool
ai-plan/public/semantic-release-versioning/todos/semantic-release-versioning-tracking.md
[grammar] ~28-~28: Ensure spelling is correct
Context: ...emantic-release的版本判断完全依赖 Conventional Commits;不规范提交会直接影响版本计算 -deps和security的发布语义需要同时维护在.releaserc.jso...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~29-~29: Ensure spelling is correct
Context: ...语义需要同时维护在 .releaserc.json、AGENTS.md 和公开贡献文档中,避免规则漂移 - cycjimmy/semantic-release-action@v6 需要在 preview / release 两端都安装 `conventional-c...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🔇 Additional comments (5)
docs/zh-CN/contributing.md (1)
337-338: 新增类型描述与整体 PR 保持一致,LGTM。
deps和security的描述与AGENTS.md中对应的 release 语义(Lines 63–66)以及.releaserc.json中的releaseRules完全对齐。AGENTS.md (1)
63-66: 规则描述清晰且与.releaserc.json和贡献文档完全对齐,LGTM。ai-plan/public/README.md (1)
65-67: 新增分支映射符合追踪文档规范,LGTM。
build/semantic-release-rules到semantic-release-versioning的映射与 coding guidelines 要求("When a worktree-to-topic mapping changes... contributors MUST update ai-plan/public/README.md in the same change")一致。ai-plan/public/semantic-release-versioning/todos/semantic-release-versioning-tracking.md (1)
11-53: 追踪文档更新完整,与代码变更保持一致,LGTM。恢复点升至
SEMREL-RP-005、已知风险补充了一致性约束、验证结果和下一步已按规范记录。ai-plan/public/semantic-release-versioning/traces/semantic-release-versioning-trace.md (1)
3-22: Trace 条目内容完整,与追踪文档和代码变更一致,LGTM。
- 修复 release-notes-generator 的 Conventional Commits 类型映射 - 补充 SEMREL-RP-006 的验证结果与 PR review 恢复点
Summary
Test ResultsDetails
Insights
build-and-test: Run #1051
🎉 All tests passed!Slowest Tests
± Comparison with run #1048 at 72b6793 | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 2 runs. Github Test Reporter by CTRF 💚 |

更新 semantic-release 规则,将 deps 与 security 提交映射为 patch 发布
补充 AGENTS 与贡献文档中的提交类型语义
记录 SEMREL-RP-005 验证结果与分支恢复入口
Summary by CodeRabbit
发布说明